home *** CD-ROM | disk | FTP | other *** search
/ Magic Disk 64 / Magic_Disk_64_95-08_1995_-_de_Side_B.d64 / sprite-source #3 < prev    next >
Text File  |  2023-02-26  |  6KB  |  325 lines

  1.  
  2.  
  3. ;---------------------------------------
  4. ;
  5. ;          - S P R I T E S -
  6. ;
  7. ;           Source-File #3:
  8. ;
  9. ;          'Smilies Fading!'
  10. ;
  11. ;          by Hannes Sommer
  12. ;
  13. ;       (c) 1993 CP-Verlag Gmbh
  14. ;
  15. ;---------------------------------------
  16.  
  17.  
  18. v        = 53248
  19.  
  20.  
  21.          *= $0840
  22.  
  23.          .byte 0,255,0,3,255,192
  24.          .byte 15,255,240,31,255,248
  25.          .byte 63,255,252,63,255,252
  26.          .byte 127,189,254,127,189,254
  27.          .byte 255,189,255,255,255,255
  28.          .byte 255,255,255,247,255,239
  29.          .byte 251,255,223,124,126,62
  30.          .byte 127,129,254,63,255,252
  31.          .byte 63,255,252,31,255,248
  32.          .byte 15,255,240,3,255,192
  33.          .byte 0,255,0,0
  34.  
  35.  
  36.          lda #255   ;Initialisierung!
  37.          sta v+21
  38.          lda #0
  39.          sta v+16
  40.          lda #160
  41.          sta v2
  42.          lda #88
  43.          sta v2+1
  44.          ldx #7
  45. i0       lda #33
  46.          sta 2040,x
  47.          lda cols,x
  48.          sta v+39,x
  49.          dex
  50.          bpl i0
  51.  
  52.          lda #0
  53.          sta $d020
  54.          sta $d021
  55.  
  56.          sei
  57.          lda #<irq
  58.          sta $0314
  59.          lda #>irq
  60.          sta $0315
  61.          lda #129
  62.          sta $d01a
  63.          lda #27
  64.          sta $d011
  65.          lda #250
  66.          sta $d012
  67.          cli
  68.  
  69.          ldx #0
  70. i1       lda text,x
  71.          beq i2
  72.          jsr $ffd2
  73.          inx
  74.          bne i1
  75. i2
  76.  
  77.  
  78. end      rts
  79.  
  80.  
  81. text     .byte 13,18
  82.          .text "joystick-abfrage im "
  83.          .text "irq aktiviert."
  84.          .byte 146,13,13,0
  85.  
  86.  
  87.  
  88. ;---------------------------------------
  89. ;               I R Q
  90. ;---------------------------------------
  91.  
  92.  
  93. irq      lda $d019
  94.          sta $d019
  95.          bmi t1
  96.          lda $dc0d
  97.          cli
  98.          jmp $ea31
  99.  
  100. t1
  101.          lda $d012
  102.          cmp #200
  103.          bcs t2
  104.          jmp irq2
  105.  
  106. t2       lda #140
  107.          sta $d012
  108.  
  109.          lda $dc00  ;Joystick!
  110.          sta joyst
  111.          and #1     ;up ?
  112.          bne t5
  113.          lda ypoint
  114.          cmp #1
  115.          beq t10
  116.          dec ypoint
  117.          jmp t10
  118. t5       lda joyst
  119.          and #2     ;down ?
  120.          bne t8
  121.          lda ypoint
  122.          cmp #31
  123.          beq t10
  124.          inc ypoint
  125.          bne t10
  126. t8       lda #0     ;Y-Bremse...
  127.          inc t8+1
  128.          and #1
  129.          bne t10
  130.          lda ypoint
  131.          cmp #16
  132.          beq t10
  133.          bcc t9
  134.          dec ypoint
  135.          bne t10
  136. t9       inc ypoint
  137. t10
  138.          lda joyst
  139.          and #4     ;left ?
  140.          bne t15
  141.          lda xpoint
  142.          cmp #1
  143.          beq t20
  144.          dec xpoint
  145.          jmp t20
  146. t15      lda joyst
  147.          and #8     ;right ?
  148.          bne t18
  149.          lda xpoint
  150.          cmp #31
  151.          beq t20
  152.          inc xpoint
  153.          bne t20
  154. t18      lda #0     ;X-Bremse...
  155.          inc t18+1
  156.          and #1
  157.          bne t20
  158.          lda xpoint
  159.          cmp #16
  160.          beq t20
  161.          bcc t19
  162.          dec xpoint
  163.          bne t20
  164. t19      inc xpoint
  165. t20
  166.  
  167.          ldx #7
  168. t41      ldy mal2,x
  169.          lda v2-2,y
  170.          sta v2,y
  171.          lda v2-1,y
  172.          sta v2+1,y
  173.          lda v+16
  174.          and oder-1,x
  175.          beq t42
  176.          lda v+16
  177.          ora oder,x
  178.          sta v+16
  179.          bne t43
  180. t42      lda v+16
  181.          and und,x
  182.          sta v+16
  183. t43      dex
  184.          bne t41
  185.  
  186.  
  187.  
  188.          lda ypoint ;Y-moving !
  189.          clc
  190.          adc #1
  191.          lsr a
  192.          lsr a
  193.          tax
  194.          lda v2+1
  195.          clc
  196.          adc speedtab,x
  197.          sta v2+1
  198.          cmp #50
  199.          bcs t21
  200.          lda #50
  201.          sta v2+1
  202.          lda ypoint
  203.          eor #31
  204.          clc
  205.          adc #2
  206.          sta ypoint
  207.          jmp t25
  208. t21      cmp #130
  209.          bcc t25
  210.          lda #130
  211.          sta v2+1
  212.          lda ypoint
  213.          and #254
  214.          eor #31
  215.          sta ypoint
  216. t25
  217.  
  218.          lda xpoint ;X-moving !
  219.          clc
  220.          adc #1
  221.          lsr a
  222.          lsr a
  223.          tax
  224.          cpx #4
  225.          bcs t35
  226.          lda v2
  227.          clc
  228.          adc speedtab,x
  229.          sta v2
  230.          bcs t31
  231.          lda v+16
  232.          and #254
  233.          sta v+16
  234. t31
  235.          lda v+16
  236.          and #1
  237.          bne t40
  238.          lda v2
  239.          cmp #24
  240.          bcs t40
  241.          lda #24
  242.          sta v2
  243.          lda xpoint
  244.          eor #31
  245.          clc
  246.          adc #2
  247.          sta xpoint
  248.          jmp t40
  249.  
  250. t35      lda v2
  251.          clc
  252.          adc speedtab,x
  253.          sta v2
  254.          bcc t36
  255.          lda v+16
  256.          ora #1
  257.          sta v+16
  258. t36      lda v+16
  259.          and #1
  260.          beq t40
  261.          lda v2
  262.          cmp #63
  263.          bcc t40
  264.          lda #64
  265.          sta v2
  266.          lda xpoint
  267.          and #254
  268.          eor #31
  269.          sta xpoint
  270. t40
  271.          ldx #15
  272. t50      lda v2,x
  273.          sta v,x
  274.          dex
  275.          bpl t50
  276.  
  277.          lda #0
  278.          sta $d021
  279.  
  280. irqend   jmp $ea81
  281.  
  282.  
  283. ;---------------------------------------
  284. ;            I R Q   # 2
  285. ;---------------------------------------
  286.  
  287. irq2
  288.          lda #250
  289.          sta $d012
  290.  
  291.          ldx #0    ;Sprites verdoppeln!
  292. t80      lda #150
  293.          sec
  294.          sbc v+1,x
  295.          adc #128
  296.          sta v+1,x
  297.          inx
  298.          inx
  299.          cpx #16
  300.          bne t80
  301.  
  302.          ldx #6
  303.          lda #150
  304. t81      cmp $d012
  305.          bcs t81
  306.          stx $d021
  307.  
  308.          jmp irqend
  309.  
  310.  
  311.  
  312. joyst    .byte 0
  313. xpoint   .byte 16
  314. ypoint   .byte 16
  315. speedtab .byte 252,253,254,255,0
  316.          .byte 1,2,3,4
  317. cols     .byte 7,13,15,10,12,8,11,9
  318. mal2     .byte 0,2,4,6,8,10,12,14
  319. oder     .byte 1,2,4,8,16,32,64,128
  320. und      .byte 254,253,251,247
  321.          .byte 239,223,191,127
  322. v2       .byte 0,0,0,0,0,0,0,0
  323.          .byte 0,0,0,0,0,0,0,0
  324.  
  325.